//
//  FiniteLight.h
//  Ray Tracer
//
//  Created by Kaila, Ashish on 3/29/13.
//  Copyright (c) 2013 Kaila, Ashish. All rights reserved.
//

#ifndef __Ray_Tracer__FiniteLight__
#define __Ray_Tracer__FiniteLight__

#include "light_source.h"
#include <vector>

class FiniteLight : public PointLight
{
public:
    FiniteLight(Point3D position,
                Vector3D u,
                Vector3D v,
                unsigned int sampleSize,
                Colour color);
        
    virtual void shade(Ray3D& ray);
    virtual Colour shadeShadow(Ray3D& ray, ISceneNavigator& sceneNavigator, bool isInShadow);
    
private:
    const unsigned int _sampleSize;
    const Vector3D _u;
    const Vector3D _v;
};

#endif /* defined(__Ray_Tracer__FiniteLight__) */
